Receiving and presenting detailed activity information regarding current and recent instant messaging sessions of remote users

ABSTRACT

A system for providing a local computer user with detailed activity information regarding remote users, in order to assist the local user in determining whether to initiate a communication session with a remote user. The system provides activity information that may describe the number of instant messaging sessions one or more remote users are currently involved in, the identities of participants in those sessions, activity levels, time period information, and other information. The system further provides detailed activity information describing recent instant messaging sessions of one or more remote users.

FIELD OF THE INVENTION

The disclosed system relates generally to messaging and collaborationsoftware systems, and more specifically to a method and system forsensing and reporting activities regarding open instant messagingwindows of remote users.

BACKGROUND OF THE INVENTION

In existing computer software systems, a category of softwareapplications sometimes referred to as “presence technology” enablesusers to view or obtain indications of the on-line status of otherusers. The on-line status indications provided by existing systemsindicate the current availability of remote users for real-timecommunication sessions. Instant messaging (IM) systems are a popularexample of presence technology. Instant messaging systems are typicallyclient-server software, in which a client application program executeson a local user's hardware system, in cooperation with one or moreassociated server programs, typically executing on one or more remoteserver computer systems. Many instant messaging systems enable a user todefine a “buddy list”, consisting of a list of colleagues, workgroupmembers, friends, etc., that the user wishes to communicate with via theinstant messaging application. An instant messaging communicationsession or dialog involving two or more users is sometimes referred toas a “chat” session.

Existing instant messaging client software enables a local user todetermine if one or more remote users in his or her buddy list arecurrently engaged in any instant messaging chat sessions. For example,an interface described in U.S. Pat. No. 5,793,365 of Tang et al.provides a local user with activity information regarding another user,such as a user in the local user's workgroup. However, such existingsystems are limited in their specific capabilities. Significantly,existing systems do not enable a local user to determine the number ofchat sessions another user is currently engaged in, or the other user'sactivity level in any such current chat sessions. It would be desirableto have access to such detailed current activity information, sinceknowing that a person is currently highly active in a relatively largenumber of active chat sessions may be a good indication that it may notbe an appropriate time to initiate an instant messaging dialog ordiscussion with the remote user until their activity level decreasessignificantly. Additionally, existing systems include no way for a localuser to determine whether a remote user has been involved in any chatsessions in the recent past, or with whom the remote user has beenchatting with. Such information would also be useful to the local userwhile using instant messaging or other types of communication systems tocontact remote users.

For these reasons and others, it would be desirable to have a systemthat provides information to a local user regarding the number of chatsessions a remote user is involved in, and indications of the activitylevels within such current chat sessions. It would further be desirablefor the system to conveniently provide indications of the identities ofpersons that a remote user has been chatting with, and detailedinformation regarding chat sessions of that remote user in the recentpast.

SUMMARY OF THE INVENTION

To address the problems described above and others, a system and methodare disclosed that provide a local computer user with detailed activityinformation regarding instant messaging sessions of remote users, inorder to assist the local user in determining whether to initiate acommunication session with a remote user. The disclosed system providesactivity information describing the number of instant messaging sessionsone or more remote users are currently involved in, as well as activitylevels for each of those instant messaging sessions, identities of othersession participants, and/or beginning and end times of the sessions.The disclosed system provides similar detailed activity informationdescribing recent instant messaging sessions of one or more remoteusers.

Activity information provided by the disclosed system for a given remoteuser is accessible to the local user through a graphical objectassociated with that remote user, such as a distinctive graphicalrepresentation of the remote user's name. The graphical objectassociated with the remote user may be presented as an awareness objecteither within a visual context of the awareness client program, orwithin the visual context of an application program external to theawareness client program. The client program operates to register withone or more server programs to receive information regarding remoteusers associated with graphical objects in a current visual context onthe local computer system, and/or contained within the local user'sbuddy list.

The detailed activity information provided by the disclosed system maybe displayed in an enhanced awareness application display, either aspart of an application client program display region of the graphicaluser interface, part of the display region of another applicationprogram executing on the local computer system, within a pop-upinformation window, or through some other technique. A special chatactivity icon may be displayed showing within it the number of currentlyactive chat windows for the associated remote user. A menu may beprovided when the local user hovers over the icon listing theparticipants in current and/or recent chat sessions of the remote user,beginning or end times associated with the current or recent chatsessions of the remote user, and other information. The visualrepresentation of the chat activity icon, such as its color, may bemanipulated to indicate a level of activity in one or more of the activechat sessions. To collect activity information, an awareness clientsoftware program in the disclosed system operates to sense informationregarding communication sessions on the client system, such as thecurrent number of open chat windows, the times at which the chat windowsare opened and closed, the names of users participating in the chatsessions in those chat windows, and/or keyboard and mouse activity ofthe remote user and arrivals of new text passages in the open chatwindows. The client program reports such information to one or moreawareness server programs, together with a user name associated with theclient system, for access by other client programs that have registeredwith the server system for information regarding the associated username. The disclosed system further enables a user to control thespecific activity information provided to other users, as well as thoseother users to which such information may be provided.

Thus there is disclosed a system that provides detailed activityinformation to a local user regarding the number of instant messagingsessions a remote user is currently or was recently involved in, as wellas indications of the activity levels of such current instant messagingsession. The disclosed system further operates to provide identities ofpersons that a remote user is currently or has recently been chattingwith, and/or time information regarding current instant messagingsessions of the remote user, as well as instant messaging sessions inthe recent past.

BRIEF DESCRIPTION OF THE DRAWINGS

In order to facilitate a fuller understanding of the present invention,reference is now made to the appended drawings. These drawings shouldnot be construed as limiting the present invention, but are intended tobe exemplary only.

FIG. 1 is a block diagram illustrating the devices and softwarecomponents used for collection of awareness information by an embodimentof the disclosed system;

FIG. 2 is a flow chart illustrating steps performed in an embodiment ofthe disclosed awareness client process to register to receive awarenessinformation regarding remote users from an awareness server processbased in part on the awareness objects in a current visual context forthe local user;

FIG. 3 is a flow chart illustrating steps performed in an embodiment ofthe disclosed awareness client process to present awareness informationto a local user;

FIG. 4 shows an example of a user display including awareness objects ina display window for an application other than that of the awarenessapplication client process;

FIG. 5 shows an example of a display for presenting detail informationregarding a remote user to a local user together with a buddy listprovided by the awareness application client process;

FIG. 6 shows another example of display for presenting detailinformation regarding a remote user to a local user;

FIG. 7 shows an example of an icon for presenting chat session activityof a remote user to a local user;

FIG. 8 shows an example of a hover over information display forpresenting chat session activity of a remote user to a local user;

FIG. 9 shows an example of an icon and hover over display for presentingkeyboard and mouse activity of a remote user to a local user;

FIG. 10 shows an example of a user interface for controlling informationprovided to other users regarding chat sessions;

FIG. 11 shows an example of an icon associated with document activity ofa remote user in a display for a local user;

FIG. 12 shows an example of a hover over display for presenting documentactivity of a remote user to a local user;

FIG. 13 shows an example of a display for indicating the documentactivity of a user to be shared with other users;

FIG. 14 shows an example of a display for indicating in greater detailthe document activity of a user with other users;

FIG. 15 shows an example of a display including communication mode iconsfor providing communication mode activity information for a remote userto a local user;

FIG. 16 shows an example of a hover over display for presenting IP phoneactivity of a remote user to a local user;

FIG. 17 shows an example of a hover over display for presentingelectronic meeting activity of a remote user to a local user;

FIG. 18 shows an example of a hover over display for presentingelectronic mail activity of a remote user to a local user;

FIG. 19 shows an example of a hover over display for presenting chatactivity of a remote user to a local user;

FIG. 20 shows an example of a display of a buddy list having onlinestatus icons including indications of updated status messages;

FIG. 21 shows an example of a display including representations of usershaving recently communicated with a remote user and users havingrecently communicated with a local user;

FIG. 22 shows an example of a display including representations of usershaving recently communicated with a selected remote user;

FIG. 23 shows an example of a display including communicationapplication indications provided within representations of users havingrecently communicated with a selected remote user, and communicationapplication indications provided in association with entries for usersin a buddy list;

FIG. 24 shows an example of a display including an interaction activityhover over display associated with a representation of a user havingrecently communicated with a remote user;

FIG. 25 shows an example of a user interface for determining how recentsocial networking information of a local user should be shared withother users;

FIG. 26 shows an example of a user interface for determining thecontents of an entry into a user status message, as well as whetherother users are able to edit the user status message, and whetherhistory of changes to the user status message is to be presented; and

FIG. 27 shows an example of a user display containing a status messageincluding an illustrative entry, as well as an interface for viewingother entries and editing one or more entries.

DETAILED DESCRIPTION OF EXEMPLARY EMBODIMENTS

1. Awareness Client—Server Software Application

As shown in FIG. 1, an execution environment for an illustrativeembodiment of the disclosed system includes a number of client systems10, awareness server systems 12, and other server systems 14,interconnected through a communications network 16 such as the Internet.The client systems 10 are shown for purposes of illustration includingclient system A 20, client system B 22, client system C 24, and mayinclude any specific number of client systems. As shown for clientsystem A 20, each of the client systems in the client systems 10 mayinclude a hardware platform 62, an operating system 60, a dynamicallylinked library 58, and some number of application processes 50. Thehardware platform 62 may, for example, include one or more processorscommunicably coupled to program storage for storing program codeexecutable on the processors, as in a computer system, communicationdevice, or the like. The operating system 60 may be any specific type ofsoftware operating system program capable of providing an interface toclient system resources, such as hardware resources in the hardwareplatform 62, for use by software executing in the client system. Thedynamically linked library 58 includes program code used by an awarenessclient process 52 to interface to other software, such as the operatingsystem 60 and/or other application programs within the applicationprocesses 50, shown for purposes of illustration as application process54 and application process 56.

The awareness servers 12 are shown including awareness servers A 30, B32 and C 34, and may include any specific number of awareness serversystems. As shown in awareness server A 30, each of the awareness serversystems 12 may include a hardware platform 69 and operating system 71,as well as an awareness server software process 72 and a historydatabase 74 accessible to the awareness server process 72. The otherserver systems 14 may include any specific number of server systems ofvarious specific types, shown for example as database server A 36,database server B 38, and database server C 40.

During operation of the awareness client process 52 of FIG. 1, theawareness client process 52 controls the display of at least one portionof the display area in a graphical user interface display accessible toa local user of the client system. The awareness client process 52 alsooperates to determine the activities of other application processeswithin the application processes 50. Such monitoring of the activitiesof other application processes within the client system may, forexample, be performed by the awareness client process 52 using programcode in the dynamically linked library 58, and using functions providedby the operating system 60 or by other application processes. In oneembodiment, the awareness client process 52 operates to monitor displaywindows provided for other application processes in the client system bythe operating system 60 in the client system graphical user interface.Such monitoring may be performed using application programminginterfaces provided by the operating system 60, or by other applicationprograms, and allows the awareness client process 52 to obtain awarenessinformation regarding user activities on the client system involvingother applications on the client system. Such awareness information may,for example, include a description of one or more of the following withregard to the client system:

1) The names of executing application programs,

2) The total number of open display windows,

3) The number of open display windows associated with an applicationprocess,

4) The window and associated application program that has current focusfor receiving inputs from the local user,

5) The keystrokes input to an application process,

6) Mouse events for each application process and/or window, such as leftclicks, right clicks, hovering, text selection, etc.

7) The names of accessed documents and/or files, and the times of suchaccesses,

8) The names of participants in communication sessions,

9) The identity of a user that initiated a communication session,

10) The beginning and end times of a communication sessions,

11) An activity level of a communication session,

12) Any other specific type of information that may be available througha given operating system or other application process on the clientsystem.

For example, in one embodiment of the disclosed system, for each of anumber of predetermined known application types, including but notlimited to: office productivity applications (i.e. word processing,spreadsheet, presentation editors, etc.), information browsing programs(Web and HTML browsers), file system applications (search, folder anddirectory listing applications), document management systems (database,shared document repositories, etc.), and others, the awareness clientapplication process may use an associated method from the dynamicallylinked library 58, appropriate for that application type, to determineand record the names of documents being accessed and the times of suchaccesses.

Similarly, in another exemplary embodiment, the dynamically linkedlibrary 58 (DLL) on the client system may be used by the awarenessclient application process to monitor all chat session windows presentin the windowing/desktop environment provided by the operating system.In this regard, the dynamically linked library 17 may be used to monitorwindow focus, keyboard/mouse activity, and participants for the chatsession windows.

The awareness information collected by the awareness client process 52is associated with a user name or other indication of a user of theclient system, and transmitted with such user indication to one or moreof the awareness servers 12. The receiving awareness server thenoperates to store the information as awareness information associatedwith that user within one or more awareness history databases, such asthe history database 74 in the awareness server A 30. The awarenessserver process 72 in the receiving awareness server then operates tobroadcast portions of the awareness information to one or more awarenessclient processes that have registered to receive all or some of theawareness information for the associated user.

The awareness client process 52 further operates to register to receiveawareness information associated with users corresponding to one or moregraphical awareness objects in the current visual context of thegraphical user interface for the client system. Such awareness objectsmay, for example, consist of graphical representations of remote users,such as the names or images of the remote users, and/or indication thatawareness information and/or awareness functionality is available withregard to those remote users. The awareness information received by anawareness client process is cached for use when responding to requestsfor awareness information regarding one or more remote users by a localuser on the client system. Additionally, the awareness client processmay obtain previously stored awareness information regarding one or moreremote users through requests indicating a recent or earlier time periodfor which the awareness information is desired.

Further during the operation of the system shown in FIG. 1, detailinformation regarding one or more users may be obtained from otherserver systems 14. For example, detail information may be storedexternally to the awareness client process and awareness server processin a corporate database within one of the other server systems 14. Thenetwork location, name and/or address of the specific database andserver from which detail information is to be obtained for a given useris conveyed to or configured in one or more of the awareness serverprocesses within the awareness servers 12. The awareness server processmay operate to either obtain detail information regarding one or moreusers and then provide the detail information to awareness clientprocess that have either requested the detail information, or that haveregistered an interest in receiving awareness information for theassociated users. Alternatively, the awareness server processes mayoperate to provide the network location, name and/or address of thespecific database and server from which detail information is to beobtained for a given user name to the awareness client processes thathave requested the detail information, or that have registered aninterest in receiving awareness information for that user. The awarenessclient processes then operate to directly obtain the detail informationfrom the external database as needed in response to local user actions.

FIG. 2 is a flow chart illustrating steps performed in an embodiment ofthe disclosed system to collect and distribute awareness informationused by awareness client processes executing on client systems. At step80, a local user logs on to a client system, and the awareness clientprocess on the client system is started. The awareness client processmay initially obtain a user name and corresponding password from thelocal user to authenticate the local user. At step 82, the awarenessclient process registers with one or more awareness server processes bysending a registration message including the current on-line status ofthe local user, and a list of remote users for which awarenessinformation is desired. For example, the list of remote users mightinclude users contained in the local user's buddy list, either withinthe awareness client process or in an external instant messagingprogram, and/or some number of remote users associated with awarenessobjects in portions of the current user display, such as windows,associated with application processes other than the awareness clientprocess.

At step 84 the awareness server process sends the awareness clientprocess awareness information for the remote users in the list sent bythe awareness client process. The transmission of awareness informationby the awareness server process at step 84 may occur periodically,and/or responsive to explicit requests by the awareness clientprocesses, or based on some criteria. At step 86, the awareness clientprocess presents the local user with awareness objects indicating thatawareness information and/or instant messaging or other awarenessfunctionality is available for associated remote users. Further at step86, the awareness client process may present all or part of a buddy listto the local user. Some or all of the remote users contained in thebuddy list for the local user may have awareness information and/orfunctionality available for them as well.

At step 88, the awareness client process may present the local user withan interface providing the local user with the ability to see andconfigure specific awareness information about the local user that isavailable to other users. The local user can then use the interfaceprovided at step 88 to specify the type, or edit the content, of theawareness information that is to be shared.

When the awareness client process determines that the local user mayneed access to awareness information for a remote user, the awarenessclient process updates its registration with the awareness serverprocess at step 90. Such a determination may result from a new awarenessobject becoming part current visual context of the user display on theclient system. Such a new awareness object may be added to portions ofthe graphical user interface, such as display windows, associated withand/or controlled by the awareness client process, or associated withand/or controlled by other application programs. Similarly, when anawareness object goes out of the current visual context of the userdisplay on the client system, the awareness client process may updateits registration with the awareness server process so as not to receivefurther awareness information for the associated remote user. In oneembodiment, cooperating application processes on the client systeminform the awareness client process of the awareness objects in theircurrent user displays, and pass control of such awareness objects to theawareness client process. In this way, the awareness client process isable to keep track of which awareness objects are currently displayedthroughout the entire current visual display context of the clientsystem, both within and outside the primary portion of the user displaycontrolled by the awareness client process. Gaining such control overthe awareness objects in other applications also enables the awarenessclient process to receive and handle local user actions such as clickingon, hovering over, and/or selecting a given awareness object in someother way. Independent of the current visual display context, whenchanges are made to the local user's buddy list, such changes aresimilarly used to update the registration with the awareness serverprocess to reflect the addition and deletion of remote users. At step92, the awareness server process provides updated awareness informationto the awareness client process reflecting the updated registrationperformed in step 90.

FIG. 3 is a flow chart showing steps performed in an illustrativeembodiment to enable a local user to obtain awareness informationregarding one or more remote users. At step 110, the awareness clientprocess detects that the local user has selected a remote user. Thelocal user may select a remote user either by selecting the remoteuser's name within the local user's buddy list, or by selecting anawareness object associated with the remote user. The selection may, forexample, be performed by clicking on the remote user's name in the buddylist or on the awareness object associated with the remote user. As aresult of the selection at step 110, the local user may be provided witha number of awareness options, as well as a display of various types ofawareness information, such as detail information regarding the selectedremote user, at step 112. Detail information provided at step 112 isobtained by the awareness client process originates from an externalserver, such as a corporate database server, and may be obtained by theawareness client process either from an awareness server processassociated with the remote user, or directly from the external serverusing information obtained from the awareness server process. Thespecific detail information provided by the remote user was defined bythe remote user through an awareness client process by the remote user.The initial detail information provided at step 112 may be a copy ofdetail information for the remote user cached in the local user's clientsystem, received prior to selection of the remote user. At step 114, theawareness client process may further operate to obtain current awarenessinformation for the selected remote user from the awareness clientprocess. The awareness client process then provides the local user withspecific portions of the current awareness information regarding theselected remote user at step 116.

The request for current awareness information at step 114 may, forexample, be in response to selection of specific awareness operations bythe local user requesting specific portions and/or types of awarenessinformation. For example, the awareness client process may requestawareness information regarding the selected remote user from a remoteawareness history database at step 114. Such awareness information mayinclude a current set of detail information, or other specific type ofawareness information regarding the selected remote user, as well aspreviously stored versions of a specific type of awareness informationthe selected remote user. In addition or alternative to detailinformation regarding the remote user, the current and/or previouslystored awareness information for the remote user may relate to and/oridentify properties of chat sessions or other modes of communicationsperformed by the remote user, applications used by the remote user,documents accessed by the remote user, status messages defined by theremote user, and/or other specific types of awareness availableregarding the remote user. Such awareness information may include namesof documents accessed by the remote user, the times the documents wereaccessed, the number of chat sessions the remote user is currentlyinvolved in and/or was recently involved in, the times of such chatsessions, the names and/or images of other users involved in chatsessions or other types of communications with the remote user, amountsof activity in a current or previous chat session, and/or otherinformation regarding the selected remote user.

The awareness client system may operate to present awareness informationin response to a local user hovering over and/or clicking on one or morepredetermined display objects in an awareness client user display usinga mouse pointing device. Such display objects may, for example, includesome number of activity icons, each of which is associated with a typeof awareness information and/or functionality. These activity icons mayinclude a chat activity icon, a keyboard and mouse activity icon, and/ora document activity icon. The chat activity icon may represent and/orprovide access to awareness information describing chat session activityof the selected remote user. The keyboard and mouse activity icon may beused to represent and/or provide access to awareness informationdescribing keyboard and mouse pointer device activity of the selectedremote user, such as left clicks, right clicks, or hovering, both withincurrent chat sessions, and also within other applications on the clientsystem of the selected remote user.

2. Awareness Objects

FIG. 4 shows an example of how an awareness client process may presentawareness objects through another application process. As shown in FIG.4, a personal address book application process display 160 includes alist of user entries 162. Each of the user entries 162 shows name,phone, primary e-mail, and company fields for an associated remote user.In the example of FIG. 4, the area within the name field for each of theuser entries 162 is an awareness object associated with the remote userfor that user entry. For example, an awareness object 163 is shown forthe user “Turner, Rob”, consisting of a display area including the username of the remote user (“Turner, Rob”), as well as the online statusindication for the remote user, in this case a square online status iconfor the remote user “Turner, Rob”. Each of the awareness objects in FIG.4 includes an online status icon for the associated remote user. Thecurrent online state of the remote user associated with the awarenessobject is indicated by one of several possible on-line status icons. Ifa remote user is currently off-line, then no online status icon is shownin the associated awareness object. If a remote user is currentlyon-line and active, a square shaped on-line status icon is shown in theassociated awareness object. If a remote user is currently online andaway, then a diamond shaped status icon is shown in the associatedawareness object. If a remote user is currently online but is not to bedisturbed, then a circle with a slash shaped icon is shown in theassociated awareness object. Other status icons may be used to showother types of online status, such as an icon having a predeterminedshape indicating that the remote user associated with the awarenessobject is online and using a wireless device.

The awareness objects in the name fields of the entries in the personaladdress book of FIG. 4 are only one possible way to include awarenessobjects in a user display, and the present invention is not limited tothat specific technique. Moreover, any type visual indication may beused to identify the online status of a remote user associated with andawareness object. Generally, awareness objects will include someidentification of the remote user with which they are associated, suchas the remote user's name, or an image or picture of the remote user.The personal address book application 160 is only one example of thevarious application programs in which an awareness object can beembedded. Any type of application program may pass control to theawareness client process of a portion of its display to serve as anawareness object.

When the local user clicks on one of the awareness objects shown in FIG.4, the awareness client process provides access to awarenessfunctionality and detail information regarding the associated remoteuser. For example, clicking on an awareness object may result in apop-up window or menu through which further awareness actions could betriggered by the local user. Examples of awareness actions are furtherdescribed below, and may include looking up personal information aboutthe remote user associated with the awareness object and/or initiating achat session with that remote user.

As shown in FIG. 4, the disclosed system presents the local user withawareness objects in the context of other work being performed by thelocal user. Accordingly, an awareness object may be presented within aworkflow form, in a list of recently received email, in a graphical ortextual representation of a remote user shown as an interaction historyof another remote user, or various other contexts.

Also as shown in FIG. 4, awareness objects may be modified in theirvisual appearance to reflect changes in the online status of theassociated remote user. Moreover, when the local user hovers over anawareness object with the cursor, a display of a status message for theassociated remote user is displayed.

3. Remote User Detail Information

The disclosed system provides detail information regarding a selectedremote user, either as a result of the local user clicking on anawareness object associated with the remote user, or the local userclicking on the remote user's entry in the local user's buddy list, orthrough some other appropriate technique. FIG. 5 shows an example of adisplay provided by the awareness client process to present detailinformation regarding a remote user. As shown in FIG. 5, the detailinformation 132 may be provided in a portion of an awareness clientprocess display 130 also including a buddy list 133. In the example ofFIG. 5, the detail information 132 is for a remote user “Chris Seller”,selected through an associated awareness object presented to the localuser outside the awareness client process display 130. Alternatively,the detail information 132 may be presented as the result of selectingthe entry for “Chris Seller” from the buddy list 133. The detailinformation 132 may include any specific type of information regardingthe selected remote user, and the illustrative detail information 132,including an email action icon 138 and image of the remote user 135, isshown for purposes of illustration only.

FIG. 6 shows another example of a display for presenting detailinformation regarding a selected remote user. The display 150 of FIG. 6is a buddy list in which the remote user name entry 151 for “Paul Mills”has been selected by the local user. As a result, the awareness clientprocess has expanded the entry for the remote user “Paul Mills” to showdetail information 152 associated with that remote user.

In both FIGS. 5 and 6, when the local user triggers the display ofpersonal information regarding a remote user, the awareness clientprocess issues one or more commands to a database server across thecommunications network, or to local resources on the client system,using an application programming interface (API) to a personal recordsdatabase. The commands to the API request a subset of the personalrecord information for the remote user associated with the awarenessobject. The personal record information obtained in this way mayinclude, for example, contact phone number(s), an image such as a photoof the selected remote user, address information, job role, relevantmanagement and reporting structure information, direct reports, areas ofexpertise, etc. The detail information from the database is parsed bythe local system, and marked up for display to the local user, eitherwithin the awareness client process display window, within the displaywindow of another application process, within a pop-up window, or insome other fashion. The detail information presented by the awarenessclient may have actions associated with specific portions, such as an“initiate IP phone call” action associated with a displayed phonenumber.

4. Activity Information Regarding Current and Recent Instant MessagingSessions of Remote Users

FIG. 7 shows an example of an icon 182 for presenting chat sessionactivity of a remote user to a local user through a display 180 for aremote user selected by a local user by clicking on an awareness object,entry in a buddy list, or in some other way. As shown in FIG. 7, theicon 182 may include an indication of the number of current chatsessions for the selected remote user, in the example of FIG. 7indicated by the number “1”. A set of predetermined colors may also beused in presenting the icon 182 to indicate associated activity levelsof the selected remote user. For example, a red color of the icon 182may indicate a relatively recent chat session activity by the remoteuser, such as keyboard or mouse activity within a predeterminedpreceding time period, while a green color of the icon 182 may indicatea relatively low activity level, such as no keyboard or mouse activitywithin a predetermined preceding time period. The specific shape of theicon 182 in FIG. 7 is for purposes of illustration only, and thedisclosed system is not limited to such shape. Any specific shape may beused to represent the icon for presenting chat session activity of aremote user to a local user.

While in the example of FIG. 7 the number of current chat sessions, andan activity level within one or more of those chat sessions, is shownthrough the icon 182, alternative embodiments may be used in thisregard. In one such alternative embodiment, awareness objects themselvescould be presented in a way that shows the number of chat session forthe associated remote user. For example, an awareness object couldindicate the number of current chat sessions for the remote user in anumber in parenthesis next to the awareness object, or in some otherway. In another alternative embodiment, in the event that a local userrequests a chat session with a remote user, the awareness clientapplication process could intercept the request, and present a modaldialog box to the local user indicating the number of current chatsessions for the remote user, and their activity levels, and askingwhether the local user wanted to continue initiating the requested chatsession. Such a modal dialog box might, for example, include a graphicalbutton marked “OK”, “CONTINUE”, or the like, for the user to click on toprovide an indication that the initiated request should be continued,and a button marked “STOP”, “TERMINATE”, or the like, for the user toclick on to provide an indication that the initiated request should beterminated.

FIG. 8 shows an example of a hover over information display 202 forpresenting chat session activity of a selected remote user to a localuser. In the example of FIG. 8, the selected remote user was selected bythe local user clicking on the entry 203 for the remote user in thebuddy list. The information display 202 results when a local user hoversthe cursor over the icon 200. As shown in FIG. 8, the chat sessionactivity information within the display 202 includes indication 204 of achat session that is currently inactive, including an indication of theinitiator of that chat session. The chat session activity informationwithin the display 202 also includes indication 206 of another chatsession that is currently active, and listing the names of theparticipants in that chat session. The chat activity information withinthe display 202 further includes indication 208 of another inactive chatsession, and the name of the initiator of that chat session.

FIG. 9 shows an example of an icon 220 for providing access toinformation regarding the keyboard and mouse activity of a selectedremote user. In the example of FIG. 9, the selected remote user wasselected by the local user clicking on the entry 203 for the remote userin the buddy list 205. A hover over display 222 presents the keyboardand mouse activity of the selected remote user. The hover over display222 is the result of the local user hovering the cursor over the icon220. In this case, the disclosed system indicates that the remote userhas been inactive for four minutes and twenty three seconds with regardto at least one chat session of the remote user.

FIG. 10 shows an example of a user interface 235 for controlling chatsession information provided to other users. In the user interface 235,the user is presented with check box 237 to provide indication ofwhether basic chat session activity information, describing whether theuser is currently active or inactive, is to be shared with other users.The user is further presented with the check box 239 to provideindication of whether the number of open chat windows for the user is tobe shared with other users, and a check box 241 to provide indication ofwhether a history of past chat partners is to be shared with otherusers. Additionally, the user is able to select the number of recentchat partners that is to be shared with other users through the pulldown object 243. The specific parameters for controlling the chatsession activity information shared with other users shown in FIG. 10 isgiven for purposes of illustration only, and the disclosed system may beembodied using various specific user-configurable control parameters inthis regard.

In another embodiment, in addition to enabling a user to specify thespecific chat session activity information to share, the awarenessclient application process provides a user interface for specifying theusers with. For example, such other users may be specified by aninterface enabling selection from or indication of one or more of thefollowing: email distribution directory groups, document access controllists, buddy lists, recent chat participants, specified individuals,etc.

5. Activity Information Regarding Document Accesses of Remote Users

FIG. 11 shows an example of an icon 252 associated with document accessactivity of a remote user in a display 250 for a selected local user.FIG. 12 shows an example of a hover over display 279 for presentingdocument access activity of a remote user to a local user. As shown inFIG. 12, the hover over display 279 results when the local user hoversthe cursor over the icon 277. The hover over display 279 includesinformation such as the titles of documents accessed by the selectedremote user, the time and date of such accesses, and comments regardingthe actions performed during the accesses. A list of actions 281 duringthe associated access presents the local user with an “audit trail”regarding actions performed by the remote user on the associateddocument. Accordingly, with regard to the DCC presentation accessed at11:15 today, the list of actions 281 indicates that the remote useradded three new slides, and edited five slides. Any specific type ofaction that may be described by the disclosed system in an audit trailwithin a document activity display, such as, for example, printing,editing text, saving edits, etc. The selected remote user in the userdisplay 275 of FIG. 12 is shown as a selected user 280 within a buddylist of the user display 275. Alternatively, the selected remote usermay be determined by selection of an awareness object associated withthe remote user from another application program by the local user.

FIG. 13 shows an example of a display 300 for indicating the documentaccess activity of a user to be shared with other users. As shown inFIG. 13, the display 300 provides an interface for a user to indicatewhether or not basic document activity is to be shared with other usersthrough the check box 302. The display 300 further provides an interfacefor a user to indicate whether or not a history of document accesses isto be shared with other users through the check box 304. Additionally,the display 300 provides a pull down list 306 for a user to indicate howmany documents most recently accessed are to be identified to otherusers.

FIG. 14 shows an example of a display 325 for indicating with greaterdetail how document activity of a user is to be shared with other users.As shown in FIG. 14, the display 325 enables the user to provide anindication 327 that all document activity is to be shared with otherusers, or an indication 329 that only document activity related tocertain documents is to be shared. Further in the display 325, the usermay provide indication 331 that a list of documents is to be specifiedfor which document access activities are to be shared. The user is alsoallowed to provide indication 333 that document access activitiesrelating to documents from certain specified folders is to be shared.Finally, the user may provide an indication 335 that document accessactivities relating to documents from certain specified websites is tobe shared.

Alternatively, or in addition, other options may be provided in a userinterface for specifying limits to the disclosed system regarding howdocument activity of a user is to be shared with other users. Forexample, in some cases a shared document may be specified that isassociated with certain editing users, in which case the document accessactivities are to be shared with only those remote users that are alsodefined as editors of the document. This may also be the case when thoseremote users are referenced or listed as part of a specified project oractivity construct associated with that document. For example, if aproject application lists a set of documents as resources for aparticular project instance, then a user of the disclosed system may beallowed to specify that activities relating to some or all of thedocuments listed for that project instance are to be shared with otherusers. Along similar lines, if one or more documents are associated witha work flow, in that those documents are used or distributed via thework flow, then a user may indicate that the disclosed system may onlyshare document access activities regarding those documents with otherparticipating users of the work flow. The preceding techniques forcontrolling how and with whom document access activities are shared areprovided as examples only, and the disclosed system may be embodied withany other specific technique or interface in this regard.

6. Activity Information Regarding Communication Application Use byRemote Users

FIG. 15 shows an example of a display 360 including communication modeicons for providing a local user with communication mode activityinformation for a selected remote user 350. The display 360 is shownincluding an email activity icon 352, an IP phone activity icon 354, anelectronic meeting activity icon 356, and a chat session activity icon358. In the example of FIG. 15, hovering the cursor over any of thecommunication mode icons shown in the display 360 will result ininformation being presented regarding the selected remote user. Clickingon any of the communication mode icons shown in the display 360 enablesthe local user to initiate one of the communication applicationsassociated with the respective communication mode icon.

FIG. 16 shows an example of a hover over display 382 for presenting alocal user with IP phone activity of a selected remote user 383. Asshown in FIG. 16, the hover over display 382 results when the local userhovers the cursor over the IP phone activity icon 354 in the userdisplay 380. The hover over display 382 is shown including informationdescribing how long since the last time the selected remote user had anIP phone conversation, and information describing recent IP phoneactivity including phone numbers, participants, times of calls anddurations, and call initiator indications.

FIG. 17 shows an example of a hover over display 402 for presenting alocal user with electronic meeting activity information regarding aselected remote user 403. As shown in FIG. 17, the hover over display402 results when the local user hovers the cursor over the electronicmeeting activity icon 356 in the user display 400. The hover overdisplay 402 is shown including information describing the last time theselected remote user participated in an electronic meeting, recentelectronic meeting activity including the names, participants, times anddurations of recent electronic meetings. The hover over display furtherincludes indications of resources used in recent electronic meetings inwhich the selected remote user was a participant, including file namesof presentations and other documents.

FIG. 18 shows an example of a hover over display 425 for presenting alocal user with electronic mail activity of a selected remote user 426to a local user. As shown in FIG. 18, the hover over display 425 resultswhen the local user hovers the cursor over the electronic mail activityicon 352 in the user display 427. The hover over display 425 is shownincluding information describing the last time the selected remote userwas active in an electronic mail application, and recent electronic mailactivity information including the times the remote user read electronicmail messages, the subjects of the electronic mail messages received orsent by the remote user, the senders or recipients of the electronicmail messages received or sent by the remote user, names of anyattachments to electronic mail messages received or sent by the remoteuser, as well as actions performed by remote user, such as printingand/or saving of messages and/or attachments. Thus the hover overdisplay 425 includes indications of the resources used in recentelectronic mail messages either received or sent by the selected remoteuser, including file names.

FIG. 19 shows an example of a hover over display 450 for presenting alocal user with chat activity information of a selected remote user 451.As shown in FIG. 17, the hover over display 450 results when the localuser hovers the cursor over the chat session activity icon 358 in theuser display 452. The hover over display 450 is shown includinginformation describing how many chat sessions the remote user iscurrently involved in, and the number of such current chat sessions thathave recently been active, as well as an indication of the time sincethe last one of the current chat session has been active. The hover overdisplay 450 further includes recent chat session activity informationdescribing the start times, participants, time since last activity,duration, start time, and/or initiating user for each recent chatsession in which the selected remote user was involved. The time periodover which recent chat sessions of the selected remote are displayed inthe hover over display 450 may be configured by a user or system manageras appropriate for a given embodiment or execution environment.

7. Providing a Local User with an Indication of Updated StatusInformation for a Remote User

FIG. 20 shows an example of a display 500 of a buddy list having onlinestatus icons 502 and 504 including indications of updated statusmessages. As shown in FIG. 20, the disclosed system may be embodied toprovide visual indications of updated status messages in associationwith graphical representations of the online status of a remote instantmessaging user. In the display 500, for purposes of illustration, eachof the user entries in the buddy list have an associated online statusicon to the left of the user name. For example, if a user in the buddylist is on-line and active, a square shaped on-line status icon is shownto the left of the user's name in the buddy list entry for that user. Ifa remote user is currently online and away, then a diamond shaped statusicon is shown to the left of the user's name in the buddy list entry forthat user. Other shapes, colors or other visual indications may be usedto represent other online status, or alternatively to represent theonline status associated with square and/or diamond shaped status iconsin the example of FIG. 20. In any case, the disclosed system operates toprovide an additional visual indication that a new status message isavailable for a remote user. As shown in FIG. 20, the word “NEW” isadded to the online status icons 502 and 504 of those users for which anew status message is available. Any specific visual indication of theavailability of a new status message may be used, such as, for example,changes to the color or shape of the online status icon, flashing orblinking the status icon, or some other change in appearance. Themodified appearance of the online status icon may be presented for somepredetermined time period after the new status message for theassociated user becomes available, for example, as controlled by a timerset by the awareness client application process when the visualindication of the new status message is first presented. In theillustrative embodiment, when a local user hovers the cursor over theentry in the buddy list for an associated remote user, the statusmessage for that remote user appears in a hover over display.

The disclosed system operates to display a hover over status messagedisplay for a remote user in the buddy list that when that remote usercurrently online. This includes remote users having an online status ofonline and active, online and away, online and using a mobile device, oronline but “do-not-disturb”. Additionally, the disclosed system operatesto provide a hover over status message for remote users that are notcurrently online. This operation is supported by storage of user definedstatus messages in a remote database, such as a history database withina remote awareness server system, retrieval of such messages from theremote database by the client system.

In the case where the online status icon for the remote user indicates anew status message, display of the hover over message including the newstatus message causes the visual indication of the new status message tobe cleared, returning the online status icon to its normal appearance.For example, the text “NEW” over the online status icon would be removedfollowing display of the new status message.

While in the example of FIG. 20 the modified online status icons 502 and504 are provided by the awareness client application process or anotherinstant messaging application within the visual context of a buddy list,such modified online status icons may alternatively be presented by thedisclosed system in visual association with awareness objects presentedin portions of the user display associated with other applicationprocesses on the client system, such as other types of communicationapplication processes, or any other specific type of application.

8. Providing a Local User with a Representation of Recent NetworkingActivities of a Remote User

FIG. 21 shows an example of a display 510 including visualrepresentations 514 of users having recently communicated with a remoteuser, and visual representations 512 of users having recentlycommunicated with a local user. The remote user having recentlycommunicated with the users shown in the images within the visualrepresentations 514 may have been selected by a local user from a buddylist displayed to the local user by the awareness client applicationprocess, or through an awareness object associated with the remote user.The local user may be a user of a client system on which the awarenessclient application process is executing.

The user images and identities of the users shown in the visualrepresentations 514 may be conveyed to an awareness client applicationprocess from an awareness server application program or another serverapplication process, such as a remote database program. Such images andidentities may originate, for example, from awareness informationprovided by an awareness client application program executing on aclient system associated with the remote user. The user images in thevisual representations 514 are shown in an order in which communicationsoccurred between the remote user and respective ones of the representedusers. For example, users shown to the right of the visualrepresentations 514 may have had relatively more recent communicationswith the remote user than users shown to the left, or vice versa. Suchordering may also be provided in the visual representations 514 of usershaving been in recent communication with the local user. While therepresentations 512 and 514 are shown for purposes of illustration asimages of the corresponding users, the disclosed system is not limitedto such an embodiment. Any specific type of visual indication may beused in this regard, such as names of the respective users, emailaddresses, instant messaging names, etc. FIG. 22 shows an example of adisplay 519 including representations 520 of users having recentlycommunicated with a selected remote user 522 within a buddy list 523provided by the awareness client application process.

FIG. 23 shows an example of a display 540 including communicationapplication indications 554, 556, 558, 560, 561, and 562 provided withinrepresentations 552 of users having recently communicated with aselected remote user 542 in a buddy list 544, and communicationapplication indications 546, 548 and 550 provided in association withentries for users in the buddy list 544. As shown in FIG. 23, the visualindications 554 and 562 represent electronic mail messages between theselected user 542 and the users whose images the indications 554 and 562are presented over, the visual indications 556 and 560 represent IPphone calls between the selected user 542 and the users whose images theindications 556 and 560 are presented over, the visual indication 558represents an electronic meeting including the selected remote user 542and the user whose image the indication 558 is presented over, and thevisual indication 561 represents an instant messaging session betweenthe selected remote user 542 and the user whose image the indication 561is provided over.

In an illustrative embodiment of the disclosed system, if the local userhovers the cursor over one of the representations 552 of users havingrecently communicated with the selected remote user 542, more detailedinformation describing the indicated communications involving theselected remote user is presented in a hover over display to the localuser. As shown in FIG. 24, the user display 540 may thus provide a hoverover display 570 including an interaction activity hover over displayassociated with a representation of a user having recently communicatedwith a remote user. The hover over display 570 is shown, for purposes ofillustration, including a description 572 of a an electronic mailmessage involving the selected remote user and the user whose image thecursor is hovered over. The hover over display 570 further includes adescription 574 of an instant messaging chat session involving theselected remote user and the user whose image the cursor is hoveredover. Additionally, the hover over display 570 includes a description576 of a second electronic mail message involving the selected remoteuser and the user whose image the cursor is hovered over. Communicationactivity information provided in the hover over display 570 may includethe participants in the communication, the time and/or duration of thecommunication, the subject of the communication, any resources involvedin the communication, such as file or document attachments, as well asan indication of how much time has passed since the selected remote userhas been active in any communication activity.

FIG. 25 shows an example of a user interface 600 for determining whetherand/or how recent social networking activity information of a localuser, such as that illustrated by the communication activity userrepresentations and indications in the displays shown in FIGS. 21, 22,23 and 24, should be shared with other users. As shown in FIG. 25, theuser interface 600 enables the local user to select through check box602 whether such recent social networking activities (“rearview mirror”)information are to be shared at all with other users. The user interface600 further enables the local user to select through check box 604whether or not the recent social networking activities of the local userare to be provided to other users when the local user is logged off.

In another embodiment, alternatively and/or in addition to enabling auser to specify the social networking information that is to be sharedwith other users, the awareness client application process may provide auser interface for the user to specify which users such socialnetworking information is to be shared with. Such an interface mayinclude check boxes and/or pull down menus such as those illustrated forpurposes of specifying shared awareness information in the interface 235of FIG. 10, or use other appropriate user interface techniques. Forexample, users with which social network information is to be shared maybe specified by an interface enabling selection from or indication ofindividual users and/or explicit user lists. Such user lists may, forexample, include one or more of the following: email distributiondirectory groups, document access control lists, buddy lists, recentchat participants, or the like.

Control over the receipt of social networking information may beprovided in various other ways as well, not limited to indication orselection of explicitly defined users or user lists or groups. Forexample, in some cases a shared document may be specified that isassociated with certain editing users, in which case social networkinginformation would be shared with those remote users that are defined aseditors of the shared document. Recipients of social networking activitymay also be defined to include those remote users that are referencedduring or listed as part of a specified project or activity construct.Additionally, the social networking activities may be limited toactivities relating to one or more shared documents, and/or to suchproject or activity constructs. Along similar lines, if one or moreremote users are associated with a work flow, then a user may indicatethat all or some social networking activity information is to be sharedwith those remote users. Again, the specific social networkingactivities shared with the remote users associated with the work flowmay also be limited to social networking activities relating to theworkflow. The preceding techniques for controlling how and with whomsocial networking activities are shared are provided as examples only,and the disclosed system may be embodied with any other specifictechnique or interface in this regard.

9. Enhanced Instant Message Status Message Area Containing EditableTime/Date Stamped Entries

FIG. 26 shows an example of a user interface 610 for determining thecontents of an entry into a user status message, as well as whetherother users are able to edit the user status message, and whetherhistory of changes to the user status message is to be presented. Asshown in FIG. 26, the disclosed system enables a user to enter a statusmessage entry into the field 612. The display 610 further enables theuser to indicate through the check box 614 whether other users areallowed to create entries for the user's status message, and to indicatethrough the check box 616 whether a history of status message entriesshould be included in the display of the status message.

The disclosed system provides the ability for a user to convenientlyinclude links to additional information within the status messageentries defined through the display 610. For example, in the event thata set of adjacent characters having a predetermined capitalizationformat is detected within the field 612, they are treated as a link toweb pages. Such a predetermined capitalization format could, forexample, consist of all sets of adjacent characters in which at leastone non-initial character is capitalized, “BumpyCase” formatted wordsconsisting of patterns of two or more proper case words (initial lettercapitalized), formed in sets of adjacent characters, and concatenatedtogether, or some other specific format. Accordingly, the disclosedsystem may embody what are conventionally referred to as “wiki”capabilities within the status message defined through the field 612,allowing for Web page creation and linking via “BumpyCase” format words.Web pages created by the disclosed system and linked through the statusmessage may, for example, be user editable Web pages that allow editingby users through Web browser programs, and generally referred to as“wikis”. Such functionality may be provided in cooperation withconventional “wiki” server software executing on one or more remoteserver systems.

Upon detection of a user entering a character string having thepredetermined capitalization format into the field 612, the system makesthat string into a “hot” link, creating an entry that is not displayedin the same display area as the status message, but through a Webbrowser application instead. The user making the entry may then beprovided with a form interface that allows them to add the Web pageassociated with the link, or edit that Web page.

While the display 610 is shown with options for an owning user of thestatus message, users other than the owner of the status message maysimilarly be provided with a similar interface for providing entriesinto the status message, provided that such entries are permitted by theowning user.

FIG. 27 shows an example of a user display 630 containing a statusmessage including an illustrative entry 630, as well as an interface 634for viewing other entries, and an interface 636 for editing one or moreentries. For purposes of illustration, the user display 630 is shownincluding a clickable portion 634 for accessing other entries in thestatus message for the associated user. In this case, the clickableportion 634 itself includes text (“1 more”) indicating the number ofother entries in the status message in the display 630. The clickableportion 636 includes the text “(edit)”, indicating to the user that thecurrent entry in the status message in the display 630 can be editedthrough the clickable portion 636. The indication 637 providesinformation about when the associated entry in the status message wascreated. In the example of FIG. 27, the indication 637 includes the text“(today)”, indicating that the entry with which the indication 637 isprovided was created on the day it is being viewed. Other informationregarding an entry within a status message may also be provided,including the specific time the entry was created, an indication of theuser that created the entry, and other information. Additionally, eachentry in the status message may include links to Web pages. Such linksmay be indicated by character strings having a predeterminedcapitalization formats, as described above. Moreover, while only oneentry is shown in the status message shown in FIG. 27, the disclosedsystem may be embodied and/or configured such that multiple entries aresimultaneously shown in the status message.

The above description of the preferred embodiments includes flowchartillustrations of methods, apparatus (systems) and computer programproducts according to an embodiment of the invention. Those skilled inthe art will recognize that the specific orders of steps shown in theflow charts are given purely for purposes of illustration, and that theactual order in which the described operations are performed may varybetween embodiments, configurations, or based on specific operationalconditions. It will be further understood that each block of theflowchart illustrations, and combinations of blocks in the flowchartillustrations, can be implemented by computer program instructions.These computer program instructions may be loaded onto a computer orother programmable data processing apparatus to produce a machine, suchthat the instructions which execute on the computer or otherprogrammable data processing apparatus create means for implementing thefunctions specified in the flowchart block or blocks. These computerprogram instructions may also be stored in a computer-readable memorythat can direct a computer or other programmable data processingapparatus to function in a particular manner, such that the instructionsstored in the computer-readable memory produce an article of manufactureincluding instruction means which implement the function specified inthe flowchart block or blocks. The computer program instructions mayalso be loaded onto a computer or other programmable data processingapparatus to cause a series of operational steps to be performed on thecomputer or other programmable apparatus to produce a computerimplemented process such that the instructions which execute on thecomputer or other programmable apparatus provide steps for implementingthe functions specified in the flowchart block or blocks.

Similarly, the above description of the preferred embodiments includesexamples of user interface display objects for purposes of explanation.The present invention is not limited to the specific screen layouts,icon shapes, or other specific aspects of the exemplary display objectsin the figures, and may be embodied using a variety of specific displayobjects, icon designs, and/or user interface designs.

Those skilled in the art should readily appreciate that programsdefining the functions of the present invention can be delivered to acomputer in many forms; including, but not limited to: (a) informationpermanently stored on non-writable storage media (e.g. read only memorydevices within a computer such as ROM or CD-ROM disks readable by acomputer I/O attachment); (b) information alterably stored on writablestorage media (e.g. floppy disks and hard drives); or (c) informationconveyed to a computer through communication media for example usingbaseband signaling or broadband signaling techniques, including carrierwave signaling techniques, such as over computer or telephone networksvia a modem.

Finally, while the invention is described through the above exemplaryembodiments, it will be understood by those of ordinary skill in the artthat modification to and variation of the illustrated embodiments may bemade without departing from the inventive concepts herein disclosed.Accordingly, the invention should not be viewed as limited except by thescope and spirit of the appended claims.

The invention claimed is:
 1. A computer-implemented method for providinga local computer user with detailed activity information regardinginstant messaging sessions of remote users, comprising: receiving, by anawareness client application process executing on a local computersystem from a remote awareness server application, an activity levelassociated with at least one instant messaging session associated with auser of a remote computer system; and presenting, by said awarenessclient application process, said activity level associated with said atleast one instant messaging session associated with said user of saidremote computer system in a display for said local computer system,wherein said received activity level is a time at which a most recenttext message was received by said user of said remote computer system insaid at least one instant messaging session, and wherein said receivedactivity level further includes activities with other users of otherremote computer systems.
 2. The method of claim 1, further comprising:receiving, by said awareness client application process from said remoteawareness server application, an identity of at least one otherparticipant in at least one of said instant messaging sessionsassociated with said user of said remote computer system; andpresenting, by said awareness client application process, said identityof said at least one other participant in said display for said localcomputer system.
 3. The method of claim 1, wherein said presenting saidactivity level associated with said at least one instant messagingsession associated with said user of said remote computer systemcomprises presenting a modal dialog box in response to detection of arequest by a user of said local computer system for an instant messagingsession with said user of said remote computer system, wherein saidmodal dialog box provides an interface for said user of said localcomputer system to provide an indication of whether to terminate saidrequest for said instant messaging session with said user of said remotecomputer system.
 4. The method of claim 1, further comprising:presenting an interface to said user of said local computer system,wherein said interface enables said user of said local computer systemto indicate whether an activity level associated with at least oneinstant messaging session associated with said user of said localcomputer system is to be shared with other users.
 5. The method of claim1, further comprising: presenting an interface to said user of saidlocal computer system, wherein said interface enables said user of saidlocal computer system to specify one or more other users with which anactivity level associated with at least one instant messaging sessionassociated with said user of said local computer system is to be shared.6. The method of claim 1, further comprising: displaying, by saidawareness client application process, information indicating whichparticipant initiated each of said instant messaging sessions associatedwith said user of said remote computer system in said display for saidlocal computer system.
 7. The method of claim 1, further comprising:receiving, by said awareness client application process executing onsaid local computer system from said remote awareness serverapplication, a number of instant messaging sessions associated with saiduser of said remote computer system, wherein said number of instantmessaging sessions associated with said user of said remote computersystem comprises a total number of display windows currently open forinstant messaging sessions on said remote computer system, and whereinsaid number of instant messaging sessions associated with said user ofsaid remote computer system; and presenting said number of instantmessaging sessions associated with said remote user and said activitylevel associated with said at least one of said of instant messagingsessions associated with said remote user simultaneously in said displayfor said local computer system.
 8. A system comprising: at least onenon-transitory computer readable storage medium, said non-transitorycomputer readable storage medium having computer-executable program codestored thereon for providing a local computer user with detailedactivity level information regarding instant messaging sessions ofremote users, said program code comprising: program code for receiving,by an awareness client application process executing on a local computersystem from a remote awareness server application, a number of instantmessaging sessions associated with a user of a remote computer system,wherein said number of instant messaging sessions associated with saiduser of said remote computer system is a total number of display windowscurrently open for instant messaging sessions on said remote computersystem, and wherein said number of instant messaging sessions associatedwith said user of said remote computer system is a plurality of instantmessaging sessions, and program code for presenting, by said awarenessclient application process, responsive to said local computer systemuser selecting said remote computer system user, said number of instantmessaging sessions associated with said user of said remote computersystem in a display for said local computer system, wherein saidactivity level is a time at which said at least one instant messagingsession was initiated, and wherein said activity level further includesactivities between the user of the remote computer system with otherusers of other remote computer systems.
 9. The system of claim 8, saidprogram code further comprising: program code for receiving, by saidawareness client application process from said remote awareness serverapplication, an identity of at least one other participant in at leastone of said instant messaging sessions associated with said user of saidremote computer system; and program code for presenting, by saidawareness client application process, said identity of said at least oneother participant in said display for said local computer system. 10.The system of claim 8, wherein said program code for presenting saidactivity level associated with said at least one instant messagingsession associated with said user of said remote computer systemcomprises program code for presenting a modal dialog box in response todetection of a request by a user of said local computer system for aninstant messaging session with said user of said remote computer system,wherein said modal dialog box provides an interface for said user ofsaid local computer system to provide an indication of whether toterminate said request for said instant messaging session with said userof said remote computer system.
 11. The system of claim 8, said programcode further comprising: program code for presenting an interface tosaid user of said local computer system, wherein said interface enablessaid user of said local computer system to indicate whether an activitylevel associated with at least one instant messaging session associatedwith said user of said local computer system is to be shared with otherusers.
 12. The system of claim 8, said program code further comprising:program code for presenting an interface to said user of said localcomputer system, wherein said interface enables said user of said localcomputer system to specify one or more other users with which anactivity level associated with at least one instant messaging sessionassociated with said user of said local computer system is to be shared.13. The system of claim 8, said program code further comprising: programcode for displaying, by said awareness client application process,information indicating which participant initiated each of said instantmessaging sessions associated with said user of said remote computersystem in said display for said local computer system.
 14. A computerprogram product comprising: a non-transitory computer readable storagemedium, said non-transitory computer readable storage medium havingcomputer-executable program code stored thereon for providing a localcomputer user with detailed activity level information regarding instantmessaging sessions of remote users, said program code comprising:program code for receiving, by an awareness client application processexecuting on a local computer system from a remote awareness serverapplication, a number of instant messaging sessions associated with auser of a remote computer system, wherein said number of instantmessaging sessions associated with said user of said remote computersystem is a total number of display windows currently open for instantmessaging sessions on said remote computer system, and wherein saidnumber of instant messaging sessions associated with said user of saidremote computer system is a plurality of instant messaging sessions, andprogram code for presenting, by said awareness client applicationprocess, responsive to said local computer system user selecting saidremote computer system user, said number of instant messaging sessionsassociated with said user of said remote computer system in a displayfor said local computer system, wherein said activity level is a time atwhich a most recent keystroke was entered by said user of said remotecomputer system in said at least one of said instant messaging session,and wherein said activity level further includes activities between theuser of the remote computer system with other users of other remotecomputer systems.